#ifndef __IDRAWABLEFACE_H__
#define __IDRAWABLEFACE_H__

#include "IMatrix3D.h"
#include "ITextureCoordinates.h"
#include "IPoligon3D.h"
#include "IRenderizableTransformation.h"
#include "IMaterial.h"

class IDrawableFace : public IPoligon3D, public IRenderizableTransformation, public IMaterial
{
private:
	ITexture *Texture;
	bool Is2D;
public:
	IDrawableFace(u32 nv,bool newIs2D=false):IPoligon3D(nv),Texture(NULL),Is2D(newIs2D)		{}
	virtual ~IDrawableFace()																{}

	inline bool GetIs2D()			{	return Is2D;	}
	inline void SetIs2D(bool nv)	{	Is2D =  nv;		}		

	inline ITextureCoordinates *GetTCoord()			{	return Texture;						}
	inline vPos *GetTexCoord(u32 nv)				{	return Texture->GetCoordinates(nv);	}
	
	inline ITexture *GetTexture()					{	return Texture;						}
	inline void SetTexture(ITexture *newTexture)	{	Texture = newTexture;				}
	inline vPos *GetTransform()						{	return Transformation;				}
};

#endif
